home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
pcl
/
pcl-rev4.lha
/
cmu-low.lisp
< prev
next >
Wrap
Lisp/Scheme
|
1990-01-25
|
2KB
|
60 lines
;;;-*-Mode:LISP; Package:(PCL LISP 1000); Base:10; Syntax:Common-lisp -*-
;;;
;;; *************************************************************************
;;; Copyright (c) 1985, 1986, 1987, 1988, 1989, 1990 Xerox Corporation.
;;; All rights reserved.
;;;
;;; Use and copying of this software and preparation of derivative works
;;; based upon this software are permitted. Any distribution of this
;;; software or derivative works must comply with all applicable United
;;; States export control laws.
;;;
;;; This software is made available AS IS, and Xerox Corporation makes no
;;; warranty about the software, its performance or its conformity to any
;;; specification.
;;;
;;; Any person obtaining a copy of this software is requested to send their
;;; name and post office or electronic mail address to:
;;; CommonLoops Coordinator
;;; Xerox PARC
;;; 3333 Coyote Hill Rd.
;;; Palo Alto, CA 94304
;;; (or send Arpanet mail to CommonLoops-Coordinator.pa@Xerox.arpa)
;;;
;;; Suggestions, comments and requests for improvements are also welcome.
;;; *************************************************************************
;;;
;;; This is the CMU Lisp version of the file low.
;;;
(in-package 'pcl)
;;
;;;;;; Cache No's
;;
;;; Abuse the type declaration, but it generates great code.
;(defun symbol-cache-no (symbol mask)
; (logand (the fixnum (system:%primitive lisp::make-immediate-type
; symbol
; system::%+-fixnum-type))
; (the fixnum mask)))
;
;(clc::deftransform symbol-cache-no symbol-cache-no-transform (symbol mask)
; `(logand (the fixnum (system:%primitive lisp::make-immediate-type
; ,symbol
; system::%+-fixnum-type))
; (the fixnum ,mask)))
(defun object-cache-no (symbol mask)
(logand (the fixnum (system:%primitive lisp::make-immediate-type
symbol
system::%+-fixnum-type))
(the fixnum mask)))
(clc::deftransform object-cache-no object-cache-no-transform (symbol mask)
`(logand (the fixnum (system:%primitive lisp::make-immediate-type
,symbol
system::%+-fixnum-type))
(the fixnum ,mask)))